package com.ease.map.geometry {
    import com.ease.map.Map;
    import com.ease.map.common.enum.GeoTypeEnum;
    import com.ease.map.geometry.basetype.Extent;
    import com.ease.map.geometry.basetype.Location;
    import com.ease.map.style.IStyle;
    import flash.display.Sprite;
    import com.ease.map.geometry.IGeometry;
    import com.ease.map.geometry.PointGeometry;

    public class AbstractGeometry implements IGeometry {
        protected var _projection:String = "EPSG:4326";

        public function AbstractGeometry() {
        }

        public function getGeometryType():int {
            return GeoTypeEnum.UNKNOWN;
        }

        public function getExtent():Extent {
            return null;
        }

        public function offset(location:Location):void {
            return;
        }

        public function getLabelAngle():Number {
            return 0;
        }

        public function removePoint(point:PointGeometry):void {
            return;
        }

        public function draw(sprite:Sprite, geoStyle:IStyle, map:Map):void {
            return;
        }

        public function getLabelLocation():Location {
            return null;
        }

        public function isValid():Boolean {
            return true;
        }

        /**
         * projection of the geometry
         */
        public function get projection():String {
            return _projection;
        }

        /**
         * @private
         */
        public function set projection(value:String):void {
            _projection = value;
        }


        public function getTolerancePoint(mousePoint:PointGeometry, distance:Number, snapPoint:PointGeometry):int {
            return 0;
        }

        public function hasPoint(point:PointGeometry):Boolean {
            return false;
        }

    }
}